import Vue from 'vue'
import VueRouter from 'vue-router'
import constantRoutes from './constantRoutes'
import dynamicRoutes from "./dynamicRoutes"
import { getStorage } from '@/utils/lib'

Vue.use(VueRouter)

const router = new VueRouter({
	mode: 'history',
	base: process.env.BASE_URL,
	routes: constantRoutes.concat(dynamicRoutes)
})

// 设置免登录页面
const whiteList = ["/login"]

router.beforeEach(async (to, _form, next) => {
    const token = getStorage('token')
    const hasUserInfo = getStorage('userInfo')
    
    // 判断 token 和用户信息是否存在
    if (token && JSON.stringify(token) !== '{}' && hasUserInfo && JSON.stringify(hasUserInfo) !== '{}') {
        if (to.path.toLowerCase() === '/login'.toLowerCase()) {
            // 已登录，不可回到登录页面，重定向到首页
            next('/')
        } else {
            // if (menuStore.menuList.length === 0) {
            //     let routes = await menuStore.getMenuData()

            //     routes.forEach((item: menuListType) => {
            //         router.addRoute(item)
            //     })

            //     next({ ...to, replace: true })
            // } else {
            //     next()
            // }
            next()
        }
    } else {
        if (whiteList.indexOf(to.path) !== -1) {
            // 在免登录白名单，直接进入
            next()
        } else {
            // 全部重定向跳转到登录页面
            next('/login')
        }
    }
})

export default router
